package cn.imnu.legalaid.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import lombok.Data;

/**
 * 律师专业表
 * @TableName lawyer_profiles
 */
@TableName(value ="lawyer_profiles")
@Data
public class LawyerProfiles {
    /**
     * 当前表主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 用户id
     */
    @TableField(value = "user_id")
    private Integer user_id;

    /**
     * 律师协会编号
     */
    @TableField(value = "bar_number")
    private String bar_number;

    /**
     * 律师协会名称
     */
    @TableField(value = "bar_association")
    private String bar_association;

    /**
     * 从业年份
     */
    @TableField(value = "practice_years")
    private Integer practice_years;

    /**
     * 专业领域 - 保持原有字段作为主要专业
     */
    @TableField(value = "specialty")
    private String specialty;

    /**
     * 关联的专业领域列表
     */
    @TableField(exist = false)
    private List<LawyerSpecialties> specialtyList;

    /**
     * 专业领域名称列表（用于前端显示）
     */
    @TableField(exist = false)
    private List<String> specialtyNames;

    /**
     * 从属公司
     */
    @TableField(value = "firm_name")
    private String firm_name;

    /**
     * 办公室地址
     */
    @TableField(value = "office_address")
    private String office_address;

    /**
     * 教育背景
     */
    @TableField(value = "education_background")
    private String education_background;

    /**
     * 专业证书
     */
    @TableField(value = "professional_certificates")
    private String professional_certificates;

    /**
     * 时薪
     */
    @TableField(value = "hour_rate")
    private BigDecimal hour_rate;

    /**
     * 评分
     */
    @TableField(value = "rating")
    private BigDecimal rating;

    /**
     * 案件处理数
     */
    @TableField(value = "case_count")
    private Integer case_count;

    /**
     * 介绍
     */
    @TableField(value = "description")
    private String description;

    /**
     * 创建时间
     */
    @TableField(value = "created_at")
    private LocalDateTime created_at;

    /**
     * 更新时间
     */
    @TableField(value = "updated_at")
    private LocalDateTime updated_at;
}